home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
014a
/
blanks41.zip
/
BLANKS.DOC
< prev
next >
Wrap
Text File
|
1992-01-01
|
46KB
|
989 lines
▄ ▄ ▄ ▄ ▄ ▄ ▄
█▀▀ ▄ █▀ █▀ ▄ ▄ ░█▀ █▀ █▀
█ ░█ █ █▀ ░▄ ░█ ░░█ █ ░█▀ ▄
░█ ░░█ ░█ ░█ ░░█ ░█░░▄ ░░█ █░░░█▀ █▀▀ ░▄
░░░░░░░█▀ ░░█ ░░█ ░░█ ░░█ ░░▄░▒█ ░░░░█▀ ░█ ▀▀
░░█▀▀▀░▒▄ ░░█ ░░░░░░░▒█ ░░█ ░▒█▒▒█ ░░█░▒▒▄ ░░░░░▄
░▒█ ▒▒█ ░▒█ ░▒█▀▀▀▒▒█ ░▒█ ▒▒▒▒█ ░▒█ ▒▒▄ ▀▀▀░▒▄
▒▒█ ▒▒▒█ ▒▒█ ▒▄ ▒▒▒█ ▒▒▒▄ ▒▒█ ▒▒▒█ ▒▒█ ▒▒▄ ░░▄ ▒▒█
▒▒▒▒▒▓▓▓█▀ ▒▒▒▒▒▒▓▓█ ▒▓█▀ ▒▓█ ▒▒▓▓█ ▒▓▓▄ ▒▒▓▓▄ ▒▓▓▄ ▒▒▒▓▓█▀
▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀
Copyright (c) 1988, 1989, 1990, 1991, 1992 FM de Monasterio
Licensed Material - All rights reserved
Release 4.10
SUMMARY
BLANKs is a DOS-based, resident utility which blanks the screen after a
selectable time interval without keyboard, mouse, or video activity; an
interval as short as 1 minute or as long as 60 minutes can be selected.
Selecting 0 minutes disables the timed screen blanking.
BLANKs also provides options for parking the hard disk(s) upon blanking
of the screen; for manual screen blanking if a (user-defined) hotkey is
pressed or a (user-defined) mouse button is clicked and the mouse is at
a (user-defined) corner of the screen; and for the use of a password to
unblank the (manually blanked) screen. See BLANKS.NEW for a description
of what is new in the current version.
BLANKs is a (terminate-and-stay) resident program which can be executed
repeatedly to change its parameters without yielding multiple copies to
memory. It consists of a resident component, that contains the code for
video blanking/unblanking and for parking the disk, which occupies less
than 1 kb of RAM, and a non-resident component, that loads the resident
component, communicates with the resident on further program executions
and provides other ancillary video services. BLANKs is compatible with
MS-DOS versions 2.0 through 5.0 (or compatible operating systems).
REGISTRATION
This software is user-supported; the present release, although lacking the
options marked by asterisks, is a fully usable program. You may test this
release for (in)compatibilities with your system, but after the testing is
completed you are requested to order a registered copy of the full release
of the software from the address at the end of this documentation.
If you would rather use this unregistered copy, consider making a donation
to the Children's Hospital of Washington DC, for indigent children in need
of medical care. Every year in the USA, infant mortality claims the lives
of tens of thousands of children before their first year of life, and most
of them come from families below poverty level... Please send to the same
address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
the obverse, and marked "For Deposit Only" on the reverse. Donations will
be sent to Children's Hospital. Please identify the program for which you
are making the donation.
--------------------------------------------------------------------------
BLANKS.REG contains a form needed to register or upgrade this Software
--------------------------------------------------------------------------
See the final part of this documentation for information on the Licensing,
Distribution, Warranty, and Limitation of Remedies of this software.
-----------------
1. GENERAL INFORMATION
The video blanking is obtained by direct commands to the hardware (video
controller) to turn off/on the video signal. This is a fast method that
operates successfully in the IBM PC/XT, PC/AT and in some IBM compatible
computers installed with MDA, CGA, EGA, VGA, and HERCULES video adapters
or with IBM-compatible adapters from other manufacturers. Actually, the
blanking/unblanking of the video signal was used by the original PC BIOS
during some CGA video services.
Starting with BLANKs version 3.34, however, blanking of HERCULES adapter
cards (HGC, HGC+, InColor) is based on a zero-row display method, kindly
made available by E.C. Raedecker, which preserves the current video mode
(text or 720 x 348 graphics) of the adapter, except during CGA emulation
(see switch /A).
NOTICE The program may not work in some nonIBM microcomputers and it
------ should not be used with other video adapter types unless they
are compatible with the IBM adapter(s) at the register level.
Blanking occurs as a result of keyboard and BIOS video inactivity within
a selectable time interval (of between 1 and 60 minutes), or by pressing
a selectable hotkey (<Ctrl-B> in the distributed version). Once blanking
has occurred, press any key to unblank the screen; a <Shift> keypress is
especially useful for this purpose.
BLANKs can be executed repeatedly to modify resident parameters, without
resulting in multiple copies to memory. The resident part uses about 800
bytes of memory. BLANKs parameters can be specified from the DOS prompt
or via the environment string 'BLANKS' (see below).
The noncritical messages, i.e. successful or uneventful operation, can be
redirected to the NUL: device (bit bucket) by the DOS redirection command
'> NUL.' Critical messages such as operation failures, however, cannot be
redirected by DOS commands, and are always displayed (unless the "StdErr"
handle processing of the console output has been modified).
The program performs a cyclic redundancy check every time it is executed.
If the CRC fails, the program aborts execution as CRC failures indicate a
modification of the code, and the program should not be used for your own
protection.
CPU VERSIONS
The program is written in assembly language; each version consists of four
processor-type releases (086, 268, 386 and 486) in which the code has been
optimized for the CPU types of the 80x86 processor family. This is needed
since the x86 processors differ markedly in instruction execution time and
the incorporation of a memory cache in some CPU types affects such time by
influencing the speed of both instruction fetching and memory access.
In addition to standard (086) assembly language instructions, the 286, 386
and 486 releases of the program also use 286-, 386- or 486-specific opcode
instructions in "real" mode (which is the native mode for 086 processors).
The type and degree of code optimization vary with the CPU type, and yield
usually small variations of resident size.
-----------------
2. USAGE
From the DOS command line or from a batch file, BLANKs is installed (or,
when already installed, modified) by the command:
BLANKs [t] [/Switches] [;Comments]
Where:
A. Time interval [t]
Timed blanking interval (minutes). This is the interval that the program
waits before blanking the screen in the absence of keyboard, video (BIOS
mediated), or mouse (INT-33h mediated) activity. Valid selections are 0
or a decimal number in the range 1 to 60. Selecting an interval of zero
minute disables TIMED blanking; the selection of an interval larger than
60 defaults to 60 minutes or to the value (within the 1-60 range) of the
first 2 digits of selections with more than 2 digits.
Typing the letter <T> instead of a number yields a 1-second interval for
test purposes (see below key <F2> in Status/Usage/Help panel).
Defaults: Null interval = 3 minutes; this default can be changed via an
environment variable (see below).
--------
B. Switches to modify the default parameters can be entered from:
(1) The DOS command line
(2) A batch file
(3) An environment variable with the format 'BLANKS=/SWITCH1.../SWITCHn'
Switches can be given in any order and any character between space (ASCII
32) and slash (ASCII 47) can be used as a switch delimiter. The switches
are not case sensitive and can be entered in any order; an invalid switch
specification aborts program execution. (Starting with version 3.17, the
switch /C is no longer recognized as a program cloning request.)
-------------------------------------------------------------------------
(*) Asterisks mark items available only in registered program copies
-------------------------------------------------------------------------
SWITCH /?
This switch displays the Status/Usage/Help panels, which are described in
more detail in the section below. If a VGA or EGA is the active adapter,
the program saves the contents of the palette registers prior to changing
the video attributes for its various displays. See section STATUS/USAGE/
HELP PANELS below.
NOTE: (EGA users only) The default IBM palette attributes are restored if
the BIOS fails to store properly the original data.
SWITCH /Ax
Forces configuration to a specified video adapter. Switch /A bypasses the
automatic configuration of BLANKs for the adapter detected at the time of
each execution. Valid specifications:
/AM MDA configuration: IBM Monochrome Display Adapter and, in
text mode only, HERCULES adapters HGC, HGC+, InColor etc.
The MDA configuration does not restore a graphics mode in
the HERCULES card. Uses and restores bit 3 of video port
3B8h, but forces bits 7 and 1 to 0.
/AH HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
in text or graphics mode, but not in CGA emulation. Uses
and restores register 6 of video port 3B5h.
/AC CGA configuration: IBM Color Graphics Adapter, MultiColor
Graphics Array [MCGA], and compatible adapters. Uses and
restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
/AE EGA configuration: IBM Enhanced Graphics Adapter and EGA-
compatible cards. Resets video ports 3BAh and 3DAh. Uses
and restores bit 5 of port 3C0h.
/AV VGA configuration: IBM Video Graphics Array and compatible
adapters. Uses video port 3C4h, and uses and restores bit
5 of port 3C5h.
/A- Ignore prior forced configuration. Uses the configuration
selected by BLANKs for the adapter detected at the time of
(each) execution.
Switch /A is useful if the video adapter type is not identified properly;
it does not need to be selected unless you want to modify the settings of
the program (read the above notice on adapter compatibility).
BLANKs (release 3.15 or later) assumes that a CGA whose ROM BIOS contains
the letters 'COMPAQ' is a monochrome COMPAQ card; if you wish to override
this assumption, switch /AC forces a CGA color configuration.
SWITCH /Dn
Adjusts brightness of the display (VGA only). The brightness change step
is specified by the sign and value of number <n> ranging from -63 to +63.
/D-n (for 0 < n < 64): Decrease the brightness of the screen,
reducing the contrast of the display.
/D+n (for 0 < n < 64): Increase the brightness of the screen,
reducing the saturation of the display.
/D0 Restore screen to its original brightness as dictated by
the settings of the monitor. Clears the screen.
Defaults: /D = /D-2, /D1 = /D-1.
Brightness changes are additive. Repeated use of the switch or the use of
large step numbers yields unreadable displays; use /D0 to restore display
contrast. (Switch /D is a sticky parameter, as brightness changes remain
in effect even if BLANKs is made quiescent or uninstalled.)
* SWITCH /E
Creates/updates the environment block variable BLANKS=/SWITCH1.../SWITCHn
in which SWITCH1...SWITCHn are the switches to be implemented when BLANKs
is executed from the DOS command line without any argument. Although the
switch itself is incorporated in the variable as well, it is ignored when
BLANKs uses the environment variable as input. See section INSTALLATION,
for more details. No defaults.
* SWITCH /H
Loads the resident in the Upper Memory Area (UMA), between addresses 640
kb and 1,024 kb of memory; this is the region below the 1-Mb boundary of
the memory accessible by 086 CPUs, but above the 640-kb hardware barrier
of MS-DOS. The switch requires an available upper memory block (UMB) of
about .9 to 1.7 kb (depending on the number of modules to be installed),
which is allocated by the program itself either via a direct XMS request
or, when DOS controls the UMB allocation (i.e. DOS 5.0 linked to the UMA
through the command DOS=UMB in CONFIG.SYS), via DOS calls. Allocation of
UMBs requires the presence of an XMS manager (XMM) that supports the UMB
services 10h-11h of the XMS 2.0, and (if the XMM lacks the capability of
remapping memory) the presence of an UMB provider.
* SWITCH /Hn
A lower upper-memory limit for the UMB loading can also be requested via
switch /Hn, in which <n> is a four-digit hexadecimal number between A000
(640 kb) and FFFF (1,024 kb), in order to avoid or select specific areas
of upper memory.
* SWITCH /Hn@
A lower-memory resident marker can also be installed along with the UMB
resident via switch /H@ or /Hn@; the marker occupies 144 bytes of lower
conventional memory, can be identified in some memory mapping utilities
by the name
BLANKs @ UMB
and is released from memory when the UMB resident is uninstalled. This
marker may be used (1) to remind that the resident is already installed
in upper memory, (2) to help locate the UMB installation address in the
case of some mapping utilities, and (3) to help avoid removal conflicts
when lower and upper-memory residents are interspersed.
Defaults: Low-memory installation if any error is found during the UMB
loading; high-memory installation below lower-address limit if UMBs are
not available above such limit.
* SWITCH /K±?xn
Hotkey switch. In addition to timed screen blanking, BLANKs allows manual
blanking of the video by pressing hotkey combination. The default hotkey
combination is <Ctrl-B> in the distributed version of the program, but it
can be changed with this switch in the case of a key-assignment conflict.
Once the screen has been blanked via the hotkey (manual blanking), it can
only be unblanked by pressing any key.
BLANKs erases the hotkey from the keyboard buffer so it is not displayed.
However, a program executed after BLANKs is loaded could save the hotkey.
This is what happens, for example, with some word processors in which the
hotkey needs to be erased from the text.
/K+ Enable hotkey operation; this is the default condition
if an switch argument is not specified (/K = /K+).
/K- Disable hotkey operation. Can be reenabled with /K+.
* /K? Permit selection of a new hotkey combination including
an alphanumeric key, and one or more of the shift keys
<Ctrl>, <Alt>, <lt-Shift>, and <rt-Shift>.
* /Kxn Select <xn> as the hotkey combination, in which <x> is
a pure alphanumeric character (0-9 or A-Z), and <n> is
a digit between 4 and 15 only. This digit corresponds
to one of the following shifting keys or their sum:
1 = right shift ------------------------
2 = left shift Values higher than 15 or
4 = Ctrl lower than 4 are invalid
8 = Alt ------------------------
For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
key combination either in switch /K? or /Kxn. If a hotkey other than the
default combination is needed routinely, it may be useful to store in the
DOS environment the variable 'BLANKS=/Kxn' (see INSTALLATION section).
* SWITCH /M±
Enables and disables the monitoring of Mouse activity compatible with the
Microsoft/Logitech mouse driver format. Applications use different mouse
programming styles, of which the most common are: calls to interrupt 33h,
a software interface set up and serviced by the mouse driver, and a user-
defined mouse event handler, which functions as a mouse interrupt service
dedicated to those particular mouse events (e.g. right button pressed, no
mouse motion, etc) defined by the requesting application.
* /M+ Enable global mouse monitoring (i.e., monitoring INT-33h calls
and user-handler calls, and allowing mouse-mediated blanking).
* /M- Disable global mouse monitoring; this is the default status if
a mouse driver (Microsoft/Logitech compatible format) is *NOT*
found to be active at the time of installing BLANKs.
* /MI+ Enable monitoring of INT-33h mouse function calls only.
* /MI- Disable monitoring of INT-33h mouse function calls only.
* /MH+ Enable mouse monitoring of user-handler calls only.
* /MH- Disable monitoring of user-handler mouse calls only.
* /MB+ Enable mouse-mediated screen blanking; defaults to blanking if
both the right mouse button is clicked and the mouse points to
the upper-left corner of the screen. Also:
/MBR@L Blank screen if both the RIGHT mouse button is clicked
and the pointer is at the LEFT-upper screen corner.
/MBL@L Blank screen if both the LEFT mouse button is clicked
and the pointer is at the LEFT-upper screen corner.
/MBB@L Blank screen if both a mouse button is clicked and the
pointer is at the LEFT-upper screen corner.
/MBR@R Blank screen if both the RIGHT mouse button is clicked
and the pointer is at the RIGHT-upper screen corner.
/MBL@R Blank screen if both the LEFT mouse button is clicked
and the pointer is at the RIGHT-upper screen corner.
/MBB@R Blank screen if both a mouse button is clicked and the
pointer is at the RIGHT-upper screen corner.
* /MB- Disable mouse-mediated screen blanking.
The selected type of mouse activity avoids a timed screen blanking. If the
mouse-handler monitoring is enabled and a password is not not required for
unblanking, keyboard activity or mouse motion unblanks the screen.
Defaults: /M[+] = /MI+/MH+/MBR@L+; /M- = /MI-/MH-/MB-; /MI = /MI+; /MH[+]=
/MH+/MBR@L; /MB[+] = /MBR@L; null switch = /MH+ /MBR@L on installation.
NOTE: The monitoring of INT-33h function calls ignores functions 1 ('Show
Mouse Pointer') and 2 ('Hide Mouse Pointer').
* SWITCH /P±
Enables/disables the parking of the hard disk(s) upon the manual or timed
blanking of the screen. Moves the disk head to the highest disk cylinder
for each physical disk that can be accessed via interrupt-13h calls (BIOS
disk services). Parking is inhibited when BIOS-mediated disk or diskette
activity is in progress at the time of blanking.
* /P+ Enable hard disk parking; this is the default condition
if an argument is not specified at the time of resident
installation.
* /P- Disable disk parking. (Can be reenabled with /P[+].)
Defaults: /P = /P+
If BLANKs is installed in a machine lacking hard disks, parking should be
disabled at the time of installation, as a parking attempt may crash some
machines with poorly designed BIOSes.
NOTE: Disk-parking-upon-blanking is not available in a special version of
the program for diskless machines to avoid potential conflicts.
SWITCH /Q
Disables timed blanking. The switch has the same effect as specifying an
interval of 0 minutes for the interval option [t]; it does not affect the
manual blanking via the hotkey combination. No defaults.
SWITCH /U
Uninstalls the resident code from memory. This request is disregarded if
the address of any of the interrupts intercepted by the resident has been
modified since the program was installed. The revectoring indicates that
another resident has subsequently hooked the same interrupt(s). Thus, the
program cannot be uninstalled, because this would leave such interrupt(s)
pointing to empty memory, and the program would then crash.
The program should be uninstalled only if it is the last resident to have
been installed. In practice, however, it can also be uninstalled when any
subsequently installed resident intercepts different interrupts; although
this increases fragmentation of memory, the resulting "hole" is innocuous
and can be used by DOS for other purposes (e.g., an environment block).
* SWITCH /W±?x
The switch controls password-mediated unblanking. A selected sequence of
1 to 15 non-shifted, alphanumeric characters, followed by a <right-Shift>
keypress, must be pressed in correct sequence to unblank the screen after
a MANUAL blanking. Rebooting via <Ctrl-Alt-Del> is inhibited.
* /Wx Specify the password from the DOS command line, which <x>
is a string of 1 to 15 nonshifted, pure alphanumeric (0-9
a-z) characters.
/W? Request to specify a new password of up to 15 nonshifted,
pure alphanumeric characters. After these characters have
been typed, press <ENTER> to make this password resident;
press <Esc> to avoid changing the password or press <Ctrl
Break> to quit to DOS. The typed characters can be erased
with the <Backspace> key.
NOTE: If <Enter> is pressed before any valid character is
typed, the unblanking of the manual blanking of the video
will occur only after pressing the <Right-Shift> key.
* /W- Disable password unblanking.
* /W+ Re-enable use of the resident password (if a password had
not been loaded, the video will unblank only when <Right-
Shift> is pressed).
Defaults: /W = /W+.
NOTE: Even when enabled, the password is not needed to unblank the screen
after a TIMED blanking.
--------
C. Comments may be added in the command line after the desired switches
and must be preceded by a semicolon. Such comments, which may be useful
in clarifying batch files, are ignored by the program.
Do not use the redirection and pipe characters in the comments since DOS
will attempt to implement the implied redirection or pipe request.
-----------------
3. STATUS/USAGE/HELP PANELS
Executing the program with switch /? selected allows access to the Status/
Usage and Help panels. (If a Mouse pointing device driver, compatible with
the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
of the services provided by these panels can also be activated by pointing
the mouse to specific regions of the display and clicking either button of
the device.)
The STATUS/USAGE panel, which is shown first, describes status information
for the resident and its services. If the program has not been installed,
pressing key <F2> or <S> shows the default installation parameters. If it
is installed, pressing key <F2> or <T> yields a 1-second blanking interval
for testing purposes; the original interval is restored once the screen is
unblanked by a keypress.
The USAGE subpanel shows a menu for the command switches: To cycle between
the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
upon the screen button labelled <Menu>. If the resident is installed, the
status of some 'on/off' command switches is displayed by '+' or '-' before
a given menu entry.
The HELP panel provides a summary description of the program and commands,
and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
(or if the mouse is clicked upon the screen button labelled <Help>). Press
the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
down or up. Press key <F1> to skip the brief program summary and position
the text on the Usage section directly. Press key <Esc> or <F2> to return
to the Status/Usage panel.
Press key <X> or click the mouse upon the screen button labelled <eXit> to
return to the DOS-prompt command line from either panel.
NOTE: When the program is waiting for keyboard (or mouse input) during the
display of the Status/Usage panel, it calls repeatedly the IDLE interrupts
of DOS: INT 28h and, if MS-DOS 5+ is installed, function 1608h of INT 2Fh.
INT 28h allows a potential background activation of (some) other residents
while INT 2Fh/1608h allows DOS to suspend the idle program temporarily and
transfer control to another program.
-----------------
4. INSTALLATION
DIRECT UPPER-MEMORY AREA LOADING
The utility can self-install the resident in the upper memory area (UMA),
that is, RAM addresses between 640 kb and 1,024 kb, via switch /H (or its
subfunctions /Hn, /H@, and /Hn@). Program releases prior to version 3.20
lack this feature.
The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
version 2.0 or higher; the XMM must be installed prior to the UMB-loading
of the resident. Allocation also requires the remapping of UMA addresses
by a UMB provider, when such a task is not implemented by the XMM itself.
XMMs require DOS version 3.0 or later.
The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
DOS 5.0; the allocation of UMBs is controlled by DOS when these 2 drivers
are installed, and the command 'DOS=UMB' is added to the CONFIG.SYS file.
Of course, other 386-specific memory managers, such as 386MAX or QEMM386,
provide both UMB remapping and XMS support.
Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
of a minimum upper-memory limit for the UMB to avoid UMA regions having a
very slow access time (or to preserve regions with a fast access time for
other utilities that require faster times, such as a disk cache or screen
accelerator), or to avoid fragmentation of the UMA when UMB allocation is
not controlled by DOS 5, but by the XMM itself. Such a fragmentation may
occur when the XMM allocates blocks on a first-fit basis, i.e., the first
available UMB having the lowest UMA address is allocated, irrespective of
whether or not a (smaller) block matching the requested size is available
at a higher UMA address. Unless the size of the available UMBs increases
with increasing memory address, first-fit allocation of a small UMB leads
to the breaking of large UMA blocks into smaller ones, thus hampering the
UMB installation of larger residents.
When DOS controls the UMB allocation, the program enforces the allocation
of the resident block on a best-fit basis when <n> is not specified; that
is, all available blocks are searched (by DOS), and the one matching most
closely the size requested is allocated.
When DOS controls UMB allocation and <n> is specified, UMBs are allocated
on a first-fit basis. While this may contribute to UMA fragmentation, it
allows for the checking of a minimum memory limit in those cases in which
the selection or avoidance of a specific UMA region is more important.
Hence, compared to the upper-memory installation provided by the LOADHIGH
command of DOS 5.0, or similar services provided by some memory managers,
program self-loading into a UMB has several advantages, including: (1) it
does not require an initial free block of upper memory of the size of the
entire program (as opposed to the size of its resident only), (2) it does
allow user control on the selection of the upper-memory block, and (3) it
can help reduce UMA fragmentation.
NOTE:
The address and size of available UMBs can be obtained with MEM.EXE, when
DOS controls UMB allocation, or with the memory manager itself, when this
allocation is controlled by 386-specific memory managers. In either case,
these data can also be obtained with UMAX.EXE, a UMA mapping utility that
is distributed by the author.
HIGH-LOADING VIA 386-MEMORY MANAGERS OR MS-DOS 5
Of course, the resident can also be installed in the UMA via a 386-memory
manager or via (UMB-linked) MS-DOS 5 provided that there is enough memory
for the actual size of the entire program, and any additional memory that
may be needed by the loading utility.
To minimize disk storage, the program is distributed as a compressed file
that expands upon its execution. The difference between the actual loaded
size and the nominal directory size may create conflicts with high-memory
loading programs that fail to measure the actual size: When the available
high memory is not sufficient to permit the file expansion, but is larger
than the nominal directory size, such programs will load the (compressed)
utility. The subsequent expansion will then overwrite adjacent memory and
likely crash the memory manager or DOS itself.
The executable file expands by a factor between 1.3 and 1.7. Notice that
the restoration of the contents of the screen requires an additional 4800
bytes of free memory if switch /?, /K?, or /W? has been specified.
UPPER-MEMORY UPDATING
When the program has been loaded in the upper memory, it does not require
a high-memory loading utility to update its resident, and all updates can
be made by executing the program from the DOS-command line. This obviates
the cumbersome restriction (of some memory systems) of having to maintain
a pool of free upper memory simply to load the entire program to update a
small resident. Program releases prior to version 3.00 lack this feature.
UPPER-MEMORY DEALLOCATION
If the deallocation of the resident is requested (switch /U) from the DOS
command line (as opposed to via an upper-memory loading utility), removal
of the resident is implemented, even if it was installed in the UMA. (The
confirmation request of versions 3.00 to 3.16 is no longer required.)
If deallocation is requested via an upper-memory loading utility, some of
of these utilities warn that a "resident installation has failed." Such a
warning is harmless and may be ignored.
THE ENVIRONMENT VARIABLE 'BLANKS'
When the program is executed from the command line of DOS or a batch file
without an argument, it searches the DOS environment block for a variable
having the format:
BLANKS=/SWITCH1/SWITCH2..../SWITCHn
Up to 128 characters are allowed after the equal sign. This string can be
incorporated to the environment block via the 'SET' command of DOS or via
switch /E of this program (see below). Program releases prior to version
3.14 lack this feature.
While the SET command modifies the current DOS environment block, whether
it is the global or a local one, switch /E only modifies the global block
(even when the program is executed via a secondary COMMAND.COM, as in the
case of shelling out to DOS from an application). Notice that the local
environment block is only a copy of the global block and lacks sufficient
room to increase significantly the length of a variable, and that changes
made to a local environment are not inherited by the global one.
When searching for the environment variable, the program uses the current
DOS environment block, whether it is the global or a local one.
The variable can be used to specify a BLANKs default configuration (e.g.,
/KB4/K+/P-/W-), which can be restored just by executing BLANKs without an
argument after a temporary change of parameters. An especially important
use of the 'BLANKS' variable (particularly since the removal of switch /C
in version 3.17) is to change the hotkey when the default key combination
conflicts with that of a foreground application.
IDENTIFICATION IN MEMORY MAPS
If the resident has been loaded in lower conventional memory, the program
can be identified by name in usage maps yielded by various memory mapping
utilities. Although the program sheds its own copy of the environment at
installation time (to minimize the resident size), the name
BLANKs n.nn
will appear in the command line listing for the resident, irrespective of
the actual content of the DOS command line at the time of loading; <n.nn>
represents the program revision number (version). Program releases prior
to BLANKs 2.20 lack this feature.
If the resident is loaded in upper memory when UMB allocation is mediated
by the XMS manager directly (e.g. extended memory manager and DOS version
2 to 4, or DOS 5 not linked to the UMA), however, most memory maps do not
list the allocated UMB, lump it with other allocated UMBs, or do not show
the name of the resident.
If UMB allocation is controlled by DOS version 5, the UMB resident can be
identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
it is listed as "Data" instead of "Program." Other mapping utilities can
identify the UMB resident when its associated lower-memory marker is also
loaded (see switch /H@). Program releases prior to BLANKs 4.00 lack this
feature.
-----------------
5. TECHNICAL INFORMATION
The program intercepts several software or hardware interrupts:
INT 08h - Hardware system timer
INT 09h - Keyboard
INT 10h - BIOS video services
INT 13h - BIOS disk services
INT 33h - (Microsoft/Logitech) Mouse services
A brief description of these interrupts is given below:
INT 8h is issued 18.2 times per second to update the time-of-the-day BIOS
counter. Hence, the timer interrupt service must operate within a period
of less than about 55 ms, including the overhead imposed by DOS and other
programs hooking INT 8h. To reduce overhead, BLANKs uses direct commands
to the hardware, which are issued after the original interrupt service is
completed.
INT 9h is issued when any key on the keyboard is pressed or released. If
the hotkey is enabled (switch /K+), the screen is blanked when the hotkey
is pressed. The hotkey code is removed from the keyboard buffer; the key
code for the keypress that unblanks the screen is removed from the buffer
as well (version 3.12+), to allow unconstrained unblanking with any key.
INT 10h implements BIOS video services. The screen blanking is suppressed
during video activity, but this activity does not unblank the screen once
blanking has occurred. Due to the monitoring, video speed is decreased by
a very small percentage.
INT 13h implements the BIOS disk services. If disk-parking-upon-blanking
is enabled (switch /P+), such parking is inhibited during BIOS disk(ette)
activity. NOTE: Interrupt 13h is not intercepted in a special version of
BLANKs for computers lacking hard disks; this version is smaller than the
standard versions by ca. 100 bytes in the resident (and several kilobytes
in the nonresident) part.
INT 33h (not used by DOS or the BIOS) is used in the (Microsoft/Logitech)
implementation of calls to the Mouse driver. This interrupt is claimed by
the Mouse driver during its initialization, and it is used by most mouse-
aware programs.
BYPASSING INTERRUPTS
BLANKs bypasses interrupt 8 when a blanking interval of 0 minute has been
selected (see below). Interrupt 9 is bypassed only when an interval of 0
minute and switch /K- (see above) have been selected. When switch /K- has
been selected along with a nonzero time interval, only the hotkey service
of interrupt 9 is bypassed. The BIOS interrupt 10h (video) and 13h (disk)
cannot be bypassed by any of the switches, while the (Microsoft/Logitech)
Mouse interrupt 33h can be bypassed by switch /M-.
Hence, the two interrupt activities of BLANKs are bypassed by the "0 /K-"
selection; this may be of use in case of testing potential conflicts with
other resident programs.
ERRORLEVELS
Upon completion, the program passes an errorlevel value which can be used
to check (via ERRORLEVEL commands in a batch file) the outcome of program
execution. The following errorlevels may be passed:
Value Nature of Error
----- ------------------------------------
255 Cyclical redundancy check failure
255 CPU type cannot execute 286+ version
128 XMM not installed or XMS error in UMB load
64 Error in update of environment variable
32 Invalid password format
16 Invalid hotkey combination
8 Unknown video adapter
4 Unable to uninstall resident
2 Invalid switch request
1 User <CTRL-BREAK> keypress
0 Successful execution
Some conditions generating errorlevels 1 through 128 may be additive, and
the resulting error value may represent more than a single error. Program
releases prior to BLANKs 2.40 lack this feature.
-----------------
6. OPERATION REQUIREMENTS & CONFLICTS
BLANKs is not compatible with Microsft WINDOWS. To execute WIN.EXE, use a
batch file WIN.BAT similar to the following one to avoid conflicts:
@Echo Off
[d:][\path\]BLANKS 0 K-
[d:][\path\]WIN
[d:][\path\]BLANKS [t][/Switches]
BLANKs will fail to operate properly when access to interrupts 8 and 9 is
denied by another program or resident loaded after BLANKs. This can occur
with ill-behaved programs that take over the interrupts and fail to chain
the information to those other utilities tapping the same interrupts (see
TECHNICAL INFORMATION section), such as some WYSIWYG word processors, GUI
systems, etc.
In particular, if access to interrupt 9 is denied, keyboard activity will
fail to unblank a blanked screen; when testing for incompatibilities with
a given program, make sure that programs voiding the manual blanking when
<Ctrl-B> is pressed, will permit video unblanking after a timed blanking.
Programs that deny access to both interrupt 8 and 9 are less of a problem
as neither manual nor timed blanking is likely to be allowed. Otherwise,
you will need to inactivate BLANKs with the command <BLANKS 0 /K-> before
executing an ill-behaved program or application.
To monitor mouse activity, BLANKs must be installed after a mouse driver
compatible with the Microsoft/Logitech mouse device driver is loaded and
active.
Since the BIOS video services are comparatively slow, many programs write
directly to video memory instead of using the BIOS services. Because such
video writes are not detected by BLANKs, screen blanking may occur during
during the video activity of such programs. Similarly, any mouse activity
implemented by commands that bypass interrupt 33h will not avoid blanking
of the screen (as in the case of some desktop publishing programs).
-----------------
7. LICENSE INFORMATION
This documentation, programs, and other files distributed in this software
package (the "Software") are the copyrighted property of FM de Monasterio
(the "Author"), who provides the Software and licenses its use. All rights
are reserved.
The file BLANKS.REG contains a form needed to register this Software.
SINGLE USER LICENSE. Upon registration, you are granted a nontransferable
license to use this Software in a single computer at a time. The Software
may also be transferred to another computer, provided that the Software is
used only in one (1) computer at any time; under the license, the Software
may NOT be installed on a network server.
SITE/15-PCs LICENSE. Upon registration, you are granted a nontransferable
license to use this Software in a single site, or a set of sites, provided
this Software is not used in more than fifteen (15) computers at any time,
and that such computers are located exclusively within the site. Licenses
for more machines are available at discounted prices.
SOFTWARE BUNDLING LICENSE. Please write to the Author.
REFUNDS POLICY. If a problem notified within ninety (90) days of shipping
of the registered copy cannot be solved, the registration fee (but not the
shipping costs) will be refunded upon receiving a written request with the
original diskette(s) enclosed.
UPGRADE POLICY. Program upgrades are limited to licensed users. Upgrades
within the same major version (e.g. release 4.00 through 4.99) are free of
charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-kb
kb diskette is included with the request. Other upgrades are charged half
the (single-user/site) registration fee. See enclosed file BLANKS.UPG.
TECHNICAL SUPPORT. A phone number for technical support is made available
to site licenses for 100 machines or more; other licensed users must write
to the Author who will contact them.
U.S. GOVERNMENT INFORMATION
The use, duplication, or disclosure by the U.S. Government of the Software
is subject to the restricted rights applicable to commercial software that
are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
and Computer Software' clause, document DFARS 52.227-7013. The contractor/
manufacturer is FM de Monasterio, P.O. Box 219, Cabin John, MD 20818-0219.
----------------
DISTRIBUTION
You may distribute this Software via magnetic and/or electronic means, but
you are specifically prohibited from:
- Charging fees or asking donations in exchange of or payment
for copies of this Software.
- Distributing this Software with commercial products without
the written, express permission in advance from the author.
- Distributing this Software via a for-profit organization or
group, either alone or with other software.
- Modifying any contents of this Software, including, but not
limited to, the copyright notice and this license.
The unauthorized copying, decompiling or disassembling of this Software is
prohibited. Any other use of this Software is also prohibited without the
express, written permission in advance from the author.
Latest program releases may be found at the Information Exchange BBS, 202-
433-6639 (2400+ baud) as a compressed archive file.
TECHNICAL PROBLEMS
If you encounter problems when using the Software (which can be replicated
in the absence of other resident utilities), please write to the Author at
the address above providing your name and address, program version number,
machine model and configuration, and a description of the problem(s). When
feasible, corrections for such problems may be incorporated in new program
releases. Technical support is limited to registered users; correspondence
from nonregistered users may not be answered.
----------------
WARRANTY DISCLAIMER
The Author cannot and does not warrant that any functions contained in the
Software will meet your requirements, or that its operations will be error
free. The entire risk as to the Software performance or quality, or both,
is solely with the user and not the Author. You assume responsibility for
the selection of the program to achieve your intended results, and for the
installation, use, and results obtained from the Software.
The Author makes no warranty, either implied or expressed, including with-
out limitation any warranty with respect to this Software documented here,
its quality, performance, or fitness for a particular purpose. In no event
shall the Author be liable to you for damages, whether direct or indirect,
incidental, special, or consequential arising out the use of or any defect
in the Software, even if the Author has been advised of the possibility of
such damages, or for any claim by any other party.
All other warranties of any kind, either express or implied, including but
not limited to the implied warranties of merchantability and fitness for a
particular purpose, are expressly excluded.
LIMITATION OF REMEDIES
The information contained in the documentation for the Software is subject
to change without notice.
The Author's entire liability, and your exclusive remedy shall be: (1) the
replacement of an original Software diskette not meeting the above Limited
Warranty and which is returned to the Author along with proof of purchase,
or (2), if the Author is unable to deliver a replacement diskette which is
free of defects, you may terminate the License Agreement by returning this
Software and the corresponding license fee will be returned.
By using the Software, you acknowledge (1) to have read and understood all
parts of this document and (2) to have agreed with and accepted all of its
provisions without any reservation.
----------------
Refer all inquiries to:
FM de Monasterio
P.O. Box 219
Cabin John, MD 20818-0219
USA
┌─────────────────────────────────────────────────────────────┐
│ Trademarked names are the property of the respective owners │
└─────────────────────────────────────────────────────────────┘
[END]